package com.quanyan.sys.service;

import com.quanyan.api.APIResponse;
import com.quanyan.api.enums.ApiResponseEnum;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.sys.entity.Organization;

import java.util.List;

/**
 * 组织维护
 * Created by songzj on 16/4/26.
 */
public interface OrgService {


    /**
     * 新增一个组织
     * @param org
     * @return
     */
    APIResponse<Organization> insert(Organization org);


    /**
     * 根据ID修改一个组织属性.
     * @param org
     * @return
     */
    APIResponse<Organization> updateById(Organization org);



    /**
     * 根据ID 获取组织
     * @param id
     * @return
     */
    APIResponse<Organization> get(Long id);


    /**
     * 删除
     * @param id
     * @return
     */
    APIResponse<ApiResponseEnum> delete(Long id);


    /**
     *
     * @param org
     * @param pageNum
     * @param pageSize
     * @return
     */
    APIResponse<PageObj<List<Organization>>> queryPageList(Organization org, int pageNum, int pageSize);


    /**
     * 获取组织树, (不完全)/完全层级
     * @param parentId
     * @param  full true:false
     * @return
     */
    APIResponse<PageObj<List<Organization>>> queryOrgList(Long parentId, boolean full);


}
